diff --git a/system/libraries/Validation.php b/system/libraries/Validation.php
index a0423c7..c828328 100644
--- a/system/libraries/Validation.php
+++ b/system/libraries/Validation.php
@@ -589,17 +589,17 @@
 
 	// --------------------------------------------------------------------
 
-    /**
-     * Is Numeric
-     *
-     * @access    public
-     * @param    string
-     * @return    bool
-     */
-    function is_numeric($str)
-    {
-        return ( ! is_numeric($str)) ? FALSE : TRUE;
-    } 
+	/**
+	 * Is Numeric
+	 *
+	 * @access	public
+	 * @param	string
+	 * @return	bool
+	 */
+  	function is_numeric($str)
+	{
+		return ( ! is_numeric($str)) ? FALSE : TRUE;
+	} 
 
 	// --------------------------------------------------------------------
 	
@@ -617,31 +617,31 @@
 
 	// --------------------------------------------------------------------
 
-    /**
-     * Is a Natural number  (0,1,2,3, etc.)
-     *
-     * @access	public
-     * @param	string
-     * @return	bool
-     */
-    function is_natural($str)
-    {   
+	/**
+	 * Is a Natural number  (0,1,2,3, etc.)
+	 *
+	 * @access	public
+	 * @param	string
+	 * @return	bool
+	 */
+	function is_natural($str)
+	{   
    		return (bool)preg_match( '/^[0-9]+$/', $str);
-    }
+	}
 
 	// --------------------------------------------------------------------
 
-    /**
-     * Is a Natural number, but not a zero  (1,2,3, etc.)
-     *
-     * @access	public
-     * @param	string
-     * @return	bool
-     */
+	/**
+	 * Is a Natural number, but not a zero  (1,2,3, etc.)
+	 *
+	 * @access	public
+	 * @param	string
+	 * @return	bool
+	 */
 	function is_natural_no_zero($str)
-    {   
+	{   
    		return (bool)preg_match( '/^[1-9]+$/', $str);
-    }
+	}
 
 	// --------------------------------------------------------------------
 	
